package top.z.orm.core.osql;

/**
 * 缓存接口. 通过 sql 生成缓存的 key, 然后再操作缓存
 */
public interface Cache {

    /**
     * 通过查询用的 sql 获取缓存结果记录
     *
     * @param sql 查询用的sql
     * @return 缓存的结果集
     */
    Object get(String sql);

    /**
     * 将结果集放入缓存
     *
     * @param sql       查询用的sql
     * @param resultSet 结果记录
     */
    void add(String sql, Object resultSet);

    /**
     * 清除某个表相关的缓存
     *
     * @param sql 会更新表数据的sql
     */
    void clear(String sql);
}